<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            height: 120px;
            float: left;
        }
        div:nth-of-type(1) {
            width: 200px;
            background-color: red;
        }
        div:nth-of-type(2) {
            width: 120px;
            position: relative;
            background-color: blue;
        }
        div:nth-of-type(2):before {
            /* 必须添加content */
            content:"";
            /* 伪类默认为行级元素 推荐转换为position */
            position:absolute;
            width: 20px;
            height: 20px;
            background-color: #fff;
            border-radius: 10px;
            left: -10px;
            top: -10px;
        }
        div:nth-of-type(2):after {
            /* 必须添加content */
            content:"";
            /* 伪类默认为行级元素 推荐转换为position */
            position:absolute;
            width: 20px;
            height: 20px;
            background-color: #fff;
            border-radius: 10px;
            left: -10px;
            bottom: -10px;
        }
    </style>
</head>
<body>
    <!-- 伪类是元素本身就带的 如果不设置的话 就看不见
         伪类是不存在dom中的 所以后期无法通过js改变他
         伪类可以像普通元素一样设置
         伪类必须设置content 如果想要改变样式的话
         伪类默认行级元素 推荐改为position 
         所以他不会影响dom树 要巧妙运用
         可以用:: 也可以用:  ie8只能用：-->
        <div></div>
        <div></div>
</body>
</html>